#include <drivers/gpio.h>
#include <drivers/platform.h>
#include <kernel/syslog.h>
#include <list.h>
#include <types.h>
#include <string.h>
#include <irqnum.h>
#include <drivers/irq.h>
#include <config.h>


static void x86_64_set_mux(int16_t pin, uint16_t mux)
{

}


static void x86_64_set_dir(int16_t pin, uint8_t flag)
{

}


static void x86_64_set_drv(int16_t pin, uint8_t drv)
{
    //no need to do
}


static void x86_64_set_value(int16_t pin, uint8_t value)
{

}


static int x86_64_get_value(int16_t pin)
{
    return 0;
}


static int x86_64_set_exti(int16_t pin, int flag)
{
    return 0;
}


struct gpio_ops x86_64_ops = {
    .init = NULL,
    .set_mux = x86_64_set_mux,
    .set_dir = x86_64_set_dir,
    .set_drv = x86_64_set_drv,
    .set_value = x86_64_set_value,
    .get_value = x86_64_get_value,
    .set_exti = x86_64_set_exti,
};


struct gpio_desc x86_64_gpio = {
    .name = "x86_64-gpio",
    .npins = CONFIG_GPIO_PINS,
    .ops = &x86_64_ops,
};


static int x86_64_gpio_register(void)
{
    gpio_desc_register(&x86_64_gpio);
    return 0;
}


base_initcall(x86_64_gpio_register);
